1. Field of the Invention
The present invention relates generally to packet switching networks, and more particularly to a set of software modules for a specialized packet assembler/ disassembler (PAD) that allows IBM or IBM-compatible synchronous data link control (SDLC) devices to communicate across an X.25 packet-switching network.
2. Prior Art
In packet-switched networks, packets in the form of units of data are transmitted from a source--such as a user terminal, computer, application program within a computer, or other data handling or data communication device--to a destination, which may be simply another data handling or data communication device of the same character. The devices themselves typically are referred to as users, in the context of the network. Blocks or frames of data are transmitted over a link along a path between nodes of the network. Each block consists of a packet together with control information in the form of a header and a trailer which are added to the packet as it exits the respective node. The header typically contains, in addition to the destination address field, a number of subfields such as operation code, source address, sequence number, and length code. The trailer is typically a technique for generating redundancy checks, such as a cyclic redundancy code for detecting errors. At the other end of the link, the receiving node strips off the control information, performs the required synchronization and error detection, and reinserts the control information onto the departing packet.
Packet switching arose, in part, to fulfill the need for low cost data communications in networks developed to allow access to host computers. Special purpose computers designated as communication processors have been developed to offload the communication handling tasks which were formerly required of the host. The communication processor is adapted to interface with the host and to route packets along the network; consequently, such a processor is often simply called a packet switch.
Packet-switched data transmission may be accomplished via predetermined end-to-end paths through the network, in which user packets associated with a great number of users share link and switch facilities as the packets travel over the network. Accordingly, the packets require storage at nodes between transmission links of the network until they may be forwarded along the respective outgoing link for the overall path. This type of data transmission is generally referred to as virtual circuit or connection-oriented transmission.
Another mode of packet-switched data transmission requires no initial connection for a data path through the network, and, hence, is termed connectionless transmission. In this mode, individual datagrams carrying a destination address are routed through the network from source to destination via intermediate nodes, and do not necessarily arrive in the order in which they were transmitted.
By way of example, in the widely-used initial Telenet public packet-switched network the routing of data is accomplished using a two-level hierarchy. The hierarchy comprises a long distance-spanning backbone network with a multiplicity of nodes or hubs, each of which utilizes a cluster of backbone switches: and smaller geographic area networks with backbone trunks, access lines and clustered lower level switches connected to each hub. Packet-switched data transmission through the network is accomplished by means of the virtual circuit connection-oriented mode using CCITT (International Telegraph and Telephone Consultative Committee of the International Telecommunications Union) X.75 protocol, which is a compatible enhancement of X.25 protocol.
Prospective routing paths in the network are initially determined by a network control center, which then transmits these predetermined paths to the backbone switches as routing tables consisting of primary and secondary choices of available links from each hub. The secondary choices are viable only in the event of primary link failures, and the specific secondary link selection is a local decision at the respective hub based principally on current or recent traffic congestion patterns. The unavailability of an outgoing link from a hub at the time of the call setup effects a clearing back of the predetermined virtual circuit for the sought call to the preceding hub. An alternative link is then selected by that hub, or, if none is available there, the virtual circuit is again cleared back to the next preceding hub, and so forth, until an available path is uncovered from the routing tables. Messages concerning link and/or hub failures are communicated immediately to the network control center, and that information is dispatched to the rest of the network by the center.
In a typical packet switch, an arbiter or arbitrator unit and associated central processing unit (CPU) controls access by a plurality of data processing (control) units vying for access to a data bus for communication with one another. That is, access for packet transmissions by the cards onto the bus is controlled by the arbitrator.
The switches used in the initial Telenet public network and various Telenet private networks are members of a multiprocessor packet switch family. By way of example, the basic packet switch includes line processing units (LPUs) for overseeing the lines to the DTEs, whether terminals, hosts or otherwise, and the network trunks (at the X.25 frame level), and a central processing unit (CPU) for routing at the packet level. The CPU, using a stored table of trunk-to-trunk active virtual circuits, maps the identity of the access-seeking LPU, its line number and the associated logical channel relative to the outgoing counterparts, for an identified virtual circuit at the respective hub.
For a communication session to proceed between the parties to a connection, it is essential that data be presented in a form that can be recognized and manipulated. The sequence of required tasks at each end, such as the format of the data delivered to a party, the rate of delivery of the data, and resequencing of packets received out of order, is generally handled in an organized manner using layered communication architectures. Such architectures address the two portions of the communications problem, one being that the delivery of data by an end user to the communication network should be such that the data arriving at the destination is correct and timely, and the other being that the delivered data must be recognizable and in proper form for use. These two portions are handled by protocols, or standard conventions for communicating intelligently, the first by network protocols and the second by higher level protocols. Each of these protocols has a series of layers. Examples of layered architectures include the Systems Network Architecture (SNA) developed by IBM, and the subsequently developed Open Systems Interconnection (OSI) reference model. The latter has seven layers, three of which are network services oriented including physical, data link, and network layers, and the other four providing services to the end user by means of transport, session, presentation, and application layers, from lowest to highest layer.
X.25 is an interface organized as a three-layered architecture for connecting data terminals, computers, and other user systems or devices, generally referred to as data terminal equipment (DTE), to a packet-switched network through data circuit terminating equipment (DCE) utilized to control the DTE's access to the network. The three layers of the X.25 interface architecture are the physical level, the frame level and the packet level. Although data communication between DCEs of the network is routinely handled by the network operator typically using techniques other than X.25, communication between the individual user system and the respective DCE with which it interfaces to the network is governed by the X.25 or similar protocol. In essence, X.25 establishes procedures for congestion control among users, as well as call setup (or connect) and call clearing (or disconnect) for individual users, handling of errors, and various other packet transmission services within the DTE-DOE interface.
X.25 is employed for virtual circuit (VC) connections, including the call setup, data transfer, and call clearing phases. Call setup between DTEs connected to the network is established by one DTE issuing an X.25 call-request packet to the related DCE, the packet containing the channel number for the logical connections, the calling and called DTE addresses, parameters specifying the call characteristics, and the data. The destination DCE issues an incoming call packet, which is of the same general format as the call-request packet, to the destination DTE, the latter replying with a call-accepted packet. In response, the calling DOE issues a call-connected packet to its related DTE. At that point the call is established and the data transfer phase may begin by delivery of data packets. When the call is completed, i.e, the session is to end, a call-clearing procedure is initiated.
The X.75 protocol used in the Telenet public network features the same call set up and packet handling procedures as X.25 with various enhancements including higher bit rates (56 kbps) at the physical layer, extended sequence numbering at the frame layer, and additional utility field for call setup packets at the packet layer. A special multilink protocol governs handling of established virtual circuits with respect to load sharing and recovery from link failures. In the event of failure of a trunk group or transmit hub, a reconnect procedure is required to reestablish a transmission path. Each call is initiated by a user-transmitted call-request packet. It is noteworthy that the initial Telenet public packet-switched network employs the X.75 protocol for routing the call-request packet through the entire backbone network via an appropriate route, rather than merely as an interface between DTEs and DOEs or between networks. Acknowledging acceptance of calls, call clearance, and certain other functions are provided using other X.25 control packets.
In the IBM SNA layered architecture, the lower layers are data link control and path control, and the higher layers are transmission control, data flow control, and presentation services. Path control provides routing and flow control comparable to the network layer of the OSI model, and uses IBM's synchronous data link control (SDLC) to provide error-free transmission of data units over connections between nodes. The more recent high level data link control (HDLC) protocol is based on SDLC, and generally has a standard frame format consisting of an 8-bit flag field at the beginning and end of the frame to establish and maintain synchronization, address and control fields of 8 bits each, an information packet of a desired number of bits, and a 16-bit block-check field. In HDLC, an I (information transfer) format frame handles information flow, and S (supervisory) and U (unnumbered) format frames handle supervisory and control signals, the latter two types of frames being without an information field (packet).